// 1 创建一个新的axios实例
// 2 请求拦截器  有token就进行头部携带
// 3 响应拦截器   1.剥离无效数据   2.处理token失效
// 4 导出函数,调用当前的axios实例发请求
import axios from "axios";
import {userUseStore} from '@/stores/user'
import router from "@/router";
export const baseURL="http://pcapi-xiaotuxian-front-devtest.itheima.net/"
// const userStore=useUserStore()
const instance= axios.create({
    baseURL,
    timeout:5000
})
instance.interceptors.request.use((config)=>{
    const {token}=userUseStore().user
    if (token){
        config.headers.Authorization=`Bearer ${token}`
    }
    return config
},err=>{
    return Promise.reject(err)
})
instance.interceptors.response.use(res=>
 res.data
,err=>{
    if (err.response && err.response.status===401){
        userUseStore().setUser({})
        const fullPath=encodeURIComponent(router.currentRoute.value.fullPath)
        router.push('/login?redirectUrl='+fullPath)
    }
    return Promise.reject(err)
})
// 请求函数
export default (url,method,Data)=>{
return instance({
    url,
    method,
    [method.toLowerCase()==='get'?'params':'data']:Data
})
}
